En esta sesión aprenderemos a crear nuestras propias funciones en python.Pero primero que son funciones?
Una función en python es un bloque de código organizado y reusable que sirve para realizar una tarea. Recuerdas las funciones que hemos usado en python, por ejemplo, cuando quisimos saber cuántos elementos hay en una lista usamos la función len. En python ya hay una gran colección de funciones que puedes utilizar (así no tenemos que re inventar la rueda cada vez que necesitemos algo) y aquí hay una lista de funciones que ya vienen incluídas en python.
Como se los he dicho en varias ocasiones todas las funciones en python tienen la misma estructura que es como se ilustra a continuación:
nombre + paréntesis + argumentos
En el caso de len, la estructura sería la siguiente:
len(lista)
len toma como argumento la lista o arreglo del cual quieras saber su longitud. Una vez que la función sea ejecutada, nos va a devolver un objeto (que evidentemente será lo que le hemos pedido).
In [1]:
animales = ['perro', 'gato', 'perico']
In [2]:
len(animales)
Out[2]:
In [3]:
animales[1]
Out[3]:
In [ ]:
x = 4
In [5]:
type(int('43'))
Out[5]:
In [ ]:
Ya que estás más familiarizada con las funciones pre hechas en python te podrás dar cuenta de que no siempre van a tener una que necesites, entonces, ¿cómo puedo hacer mis propias funciones?
En python la forma de hacerlo es la siguiente:
Primero tienes que hacerle claro a python que el bloque de código (o pequeño programa) que vas a escribir forma va a ser una función para esto se escribe def que es la abreviatura para definir.
Después tienes que inventar un nombre para tu función. En teoría puedes llamarlo como quieras, sin embargo, es de buena práctica en python llamar a tus funciones de forma tal que cuando las leas después de meses o años puedas claramente recordar que es lo que hacen.
Después de escribir def y el nombre de la función viene algo crucial para crear funciones, basándote en la estructura de las que ya vienen incluídas en python, qué crees que sea...
... Exactamente!! los argumentos!!
Esta parte es crucial porque de aquí vas a sacar la información necesaria para poder dar un resultado. Veremos esto más adelante.
Después viene el bloque de código que deseas ejecutar y esto puede constar de operaciones complejas y transformación de los datos.
Finalmente, para que quede claro para python lo que te debe devolver al final de la función necesitas escribir un return seguido de lo que será el resultado de la función.
La estructura para definir funciones queda de la siguiente manera:
def nombre_función(argumento 1, argumento 2, ... , argumento n):
operación 1
operación 2
resultado = operación 1 + operación 2
return resultado
Hagamos una pequeña función como ejemplo.
In [6]:
def cuadrado(numero):
'''Función que da como resultado el cuadrado de un número
necesitas un número como argumento'''
resultado = numero**2
return resultado
In [7]:
# Probemos la función
cuadrado(8)
Out[7]:
In [8]:
cuadrado(8.0)
Out[8]:
In [9]:
cuadrado(-8)
Out[9]:
In [ ]:
def barras(porcentaje):
gatos = (porcentaje*20)//100
guiones = 20 - gatos
print('['+'#'* gatos + '-' * guiones + ']'+str(porcentaje)+'%')
In [ ]:
barras(167)
In [1]:
gatos = (35*20)/100
In [ ]:
In [ ]:
Ahora prueba tu función con estos valores de porcentage:
* 12.5%
* 167 %
* -20 *
Hay ocasiones en las cuales los argumentos para una función que vamos a crear los vamos a ocuparemos cotidianamente o simplemente tienen más sentido y para no tener que escribirlos cada vez que llamamos a la función lo que podemos hacer es definirlos desde el momento en el que estamos creando una función
Vamos a asumir que yo quiero hacer una función que eleve a la potencia n un número x. Digamos que de acuerdo a mi experiencia, la mayoría de las personas quiere saber el cuadrado de 4. Lo que hago entonces es una función que tenga como argumentos predeterminados el 4 y el 2... Veamos el ejemplo
In [10]:
def exponente(numero=4, exponente=2):
'''Toma un número y lo eleva a la potencia de otro'''
resultado = numero**exponente
return resultado
Ahora veamos que pasa cuando llamamos a la función
In [11]:
exponente()
Out[11]:
Esto no significa que la función que acabo de escribir sea definitiva y no pueda yo modificarla para sacar las potencias con otros números. Como veremos a continuación, la función puede tomar cualquier número. Sólo tenemos que hacerlo explícito esta vez...
In [12]:
exponente(4, 0.5)
Out[12]:
In [13]:
exponente(5, -1)
Out[13]:
In [14]:
exponente(0.5, 2)
Out[14]:
Ahora te toca a ti
Modifica la función que escribiste en el ejercicio número dos para que la barra de porcentage por default la llene con el símbolo de "#" pero que si quieres, puedas cambiar los signos por "@" o cualquier otro símbolo permitido en python... Tal vez con ❤ si sientes que es apropiado por el mes del amor y la amistad! (Puedes encontrar más caracteres de unicode aquí)
In [ ]:
In [ ]:
In [ ]: